# -*- coding: utf-8 -*-
# psutil = process and system utilities 支持跨平台使用，实现系统监控
# pip install psutil

import psutil

print(psutil.cpu_count()) # CPU逻辑数量
print(psutil.cpu_count(logical=False)) # CPU物理核心

# 统计CPU的用户、系统
print(psutil.cpu_times())

# 实现类似top命令的CPU使用率，每秒刷新一次，累计10次
for x in range(10):
	print(psutil.cpu_percent(interval=1,percpu=True))

# 获取内存信息
print(psutil.virtual_memory())

#获取磁盘区分，使用率，IO信息
print(psutil.disk_partitions()) # 磁盘分区信息
print(psutil.disk_usage('/')) # 磁盘使用情况
print(psutil.disk_io_counters()) # 磁盘IO

# 获取网络信息
# 获取网络接口 和 网络连接信息
print(psutil.net_io_counters()) # 获取网络读写字节/包的个数

# 获取网络接口信息
print(psutil.net_if_addrs())

# 获取当前网络连接信息
print(psutil.net_connections())

# 获取进程信息
print(psutil.pids()) # 所有进程ID

# 获得指定进程
p = psutil.Process(psutil.pids()[10])
print(p.name()) 	#进程名称
print(p.cwd()) #进程工作目录
print(p.cmdline()) #进程启动的命令行
print(p.ppid()) # 父进程ID
print(p.parent()) # 父进程
print(p.children()) # 子进程列表
print(p.status()) # 进程状态
print(p.username()) #进程用户名
print(p.create_time()) # 进程创建时间
print(p.terminal()) #进程终端
print(p.cpu_times()) #进程使用的CPU时间
print(p.memory_info()) # 进程使用的内存
print(p.open_files()) # 进程打开的文件
print(p.connections()) # 进程相关网络连接
print(p.num_threads()) # 进程的线程数量
print(p.threads()) # 所有线程方法
print(p.environ()) # 进程环境变量
# print(p.terminate()) # 结束进程

# test()函数 模拟出ps命令的效果
print(psutil.test())
